package com.star.uc.contract.enums;

import com.star.common.core.contract.enums.IEnum;
import com.star.common.kit.enums.EnumValueResolver;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 登录方式
 * 如果需要根据code获取desc，请使用
 *
 * @author zhouhengzhe
 * @version 1.0
 * @date 2023/10/18 18:27
 * @see com.star.common.kit.enums.EnumUtils#getByCode(java.lang.Class, java.lang.Object)
 */
@Getter
@AllArgsConstructor
public enum LoginTypeEnum implements IEnum<String>, EnumValueResolver<LoginTypeEnum, String> {

    /**
     * 常用平台开始-------
     */
    QQ("QQ", "QQ登录"),
    WEIBO("WEIBO", "新浪微博"),
    BAIDU("BAIDU", "百度登录"),
    /**
     * 常用平台结束-------
     */

    /**
     * 技术平台开始-------
     */
    GITEE("GITEE", "Gitee登录"),
    GITHUB("GITHUB", "Github登录"),
    GITLAB("GITLAB", "Gitlab登录"),
    OS_CHINA("OS_CHINA", "开源中国登录"),
    STACKOVERFLOW("STACKOVERFLOW", "Stackoverflow bug搜索平台"),
    PROGINN("PROGINN", "程序员客栈"),
    /**
     * 技术平台结束-------
     */

    /**
     * 国外平台开始-------
     */
    GOOGLE("GOOGLE", "GOOGLE登录"),
    FACEBOOK("FACEBOOK", "Facebook登录"),
    LINKED_IN("LINKED_IN", "领英平台登录"),
    TWITTER("TWITTER", "推特登录"),
    SLACK("SLACK", "团队沟通工具"),
    LINE("LINE", "LINE登录"),
    OKTA("OKTA", "Okta 单点登录领域领导产品"),
    MICROSOFT("MICROSOFT", "微软平台"),
    MICROSOFT_AAD("MICROSOFT_AAD", "Microsoft Entra ID 登录（AAD）"),
    /**
     * 国外平台结束-------
     */
    /**
     * 企业平台开始-------
     */
    DING_TALK("DING_TALK", "钉钉登录"),
    ALIYUN("ALIYUN", "阿里云登录"),
    ALIPAY("ALIPAY", "支付宝登录"),
    HUAWEI("HUAWEI", "华为登录"),
    FEI_SHU("FEI_SHU", "飞书登录"),
    DOU_YIN("DOU_YIN", "抖音登录"),
    JD("JD", "京东登录"),
    KU_JIA_LE("KU_JIA_LE", "酷家乐平台登录"),
    /**
     * 企业平台结束-------
     */

    /**
     * 微信生态登录开始----------
     */
    WECHAT_OPEN("WECHAT_OPEN", "微信开放平台"),
    WECHAT("WECHAT", "微信登录"),
    WECHAT_ENTERPRISE_QR_CODE("WECHAT_ENTERPRISE_QR_CODE", "企业微信扫码登录"),
    WECHAT_ENTERPRISE("WECHAT_ENTERPRISE", "企业微信网页登录"),

    /**
     * 微信生态登录结束----------
     */

    /**
     * 扩展
     */
    AUTO("AUTO", "自动登录"),
    SID("SID", "设备登录"),
    PHONE("PHONE", "短信登录+验证码"),
    USERNAME("USERNAME", "用户名密码登录"),
    EMAIL("EMAIL", "email登录+验证码"),
    ONE_CLICK_PHONE("ONE_CLICK_PHONE", "一键登录"),
    QUICK("QUICK", "快速登录"),
    ;

    private final String code;

    private final String desc;
}
